import { IPSDELogicNode } from './ipsdelogic-node';
import { IPSDELogicParam } from './ipsdelogic-param';
import { IPSSysSearchDoc } from '../../search/ipssys-search-doc';
import { IPSSysSearchScheme } from '../../search/ipssys-search-scheme';

/**
 *
 * 继承父接口类型值[SYSSEARCHDOCACTION]
 * @export
 * @interface IPSDESysSearchDocActionLogic
 */
export interface IPSDESysSearchDocActionLogic extends IPSDELogicNode {
  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get dstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 检索文档
   *
   * @type {IPSSysSearchDoc}
   */
  getPSSysSearchDoc(): IPSSysSearchDoc | null;

  /**
   * 检索文档
   *
   * @type {IPSSysSearchDoc}
   */
  get psSysSearchDoc(): IPSSysSearchDoc | null;

  /**
   * 检索文档（必须存在）
   *
   * @type {IPSSysSearchDoc}
   */
  getPSSysSearchDocMust(): IPSSysSearchDoc;

  /**
   * 全文检索体系
   *
   * @type {IPSSysSearchScheme}
   */
  getPSSysSearchScheme(): IPSSysSearchScheme | null;

  /**
   * 全文检索体系
   *
   * @type {IPSSysSearchScheme}
   */
  get psSysSearchScheme(): IPSSysSearchScheme | null;

  /**
   * 全文检索体系（必须存在）
   *
   * @type {IPSSysSearchScheme}
   */
  getPSSysSearchSchemeMust(): IPSSysSearchScheme;

  /**
   * 检索文档操作
   * @description 值模式 [系统数据库表操作] {CREATE：建立、 UPDATE：更新、 READ：获取、 DELETE：删除 }
   * @type {( string | 'CREATE' | 'UPDATE' | 'READ' | 'DELETE')}
   */
  searchDocAction: string | 'CREATE' | 'UPDATE' | 'READ' | 'DELETE';
}
